import java.util.ArrayList;
import java.util.List;

/**
 * 1796. 字符串中第二大的数字
 * https://leetcode-cn.com/problems/second-largest-digit-in-a-string/
 */
public class Solutions_1796 {
    public static void main(String[] args) {
        String s1 = "dfa12321afd";  // output: 2
        String s2 = "abc1111";  // output: -1
        String s3 = "ck077";  // output: 0

        List<String> inputs = new ArrayList<>();
        inputs.add(s1);
        inputs.add(s2);
        inputs.add(s3);

        for (String input : inputs) {
            int result = secondHighest(input);
            System.out.println(result);
        }
    }

    public static int secondHighest(String s) {
        int max1 = -1, max2 = -1;
        char[] arr = s.toCharArray();
        for (char c : arr) {
//            if (Character.isDigit(c)) {
            if (c >= '0' && c <= '9') {
                // 是数字
                int cur = c - '0';
                if (cur > max1) {
                    // 第 1 大的数字出现，原本第 1 大的，现在变成了第 2 大的
                    max2 = max1;
                    max1 = cur;
                } else if (cur > max2 && cur != max1) {
                    // 第 2 大的数字出现
                    max2 = cur;
                }
            }
        }
        return max2;
    }
}
